//package org.chs.ts.batch.execute.step;
//
//
//import lombok.extern.slf4j.Slf4j;
//import org.chs.ts.batch.exception.TaskStepExecException;
//import org.chs.ts.batch.execute.BatchTaskExecute;
//import org.chs.ts.batch.pojo.BatchTradeCapitalTransReq;
//import org.chs.ts.batch.pojo.TradeCapitalCheckErrorReq;
//import org.chs.ts.batch.util.*;
//import org.springframework.context.annotation.Lazy;
//import org.springframework.stereotype.Service;
//
//import javax.annotation.Resource;
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Collections;
//import java.util.List;
//
///**
// * @Compay 盛唐天行
// * @Author: wuwei
// * @Censor By wuwei
// * @Sence 2024/5/15 16:20
// * @Modify 2024/5/15 16:20
// * @Description 调账对账操作
// */
//@Slf4j
//@Service("TaskStepAdjustmentOfAccount")
//@Lazy
//public class TaskStepAdjustmentOfAccount implements BatchStepServiceBase<BatchTaskExecute, BatchExecResp, TaskStepExecException> {
//    //
//    //
//    //@Resource(name = "BatchTradeCapitalTransLogService")
//    //private IMwbpTradeCapitalTransLogService tradeCapitalTransLogService;
//    //
//    //@Resource(name = "BatchTradeCapitalCheckErrorService")
//    //private IMwbpTradeCapitalCheckErrorService tradeCapitalCheckErrorService;
//    //
//    //@Resource
//    //private TaskBuilder taskBuilder;
//    //
//    //@Resource
//    //private TradeCapitalBuilder tradeCapitalBuilder;
//    //
//    //private String execDate = "";
//    //
//    //@Override
//    //public BatchExecResp execute(BatchTaskExecute BatchServiceBean) {
//    //    printRunningMsg(BatchServiceBean);
//    //    BatchExecResp resp = BatchServiceBean.initBatchExecResp();
//    //    execDate = BatchServiceBean.getTaskObject().getExecDate();
//    //    // 初始化 资金交易对账差错列表
//    //    List<MwbpTradeCapitalCheckError> tradeCapitalCheckErrorList =
//    //            tradeCapitalCheckErrorService.getTradeCapitalCheckErrorListByTransDate(initTradeCapitalCheckErrorReq());
//    //    if (tradeCapitalCheckErrorList.isEmpty()) {
//    //        resp.setRtnDesc(ErrMsg.资金交易对账差错_无对账差错信息);
//    //        return resp;
//    //    }
//    //
//    //    for (MwbpTradeCapitalCheckError tradeCapitalCheckError : tradeCapitalCheckErrorList) {
//    //        // 验证 差错处理类型 是否 正确
//    //        if (!checkErrOptType(tradeCapitalCheckError)) {
//    //            resp.setRtnDesc(ErrMsg.资金交易对账差错_差错处理类型_异常 + "涉及以下客户交易流水：" + printObjectInfo(new ArrayList<>(Collections.singletonList(tradeCapitalCheckError))));
//    //            resp.setRtnCode(RetCode.FAILED);
//    //            break;
//    //        }
//    //        try {
//    //            // 此处会进行 api远程调用 对于潜在风险 进行应对处理
//    //            resp = tradeCapitalReconciliate(tradeCapitalCheckError, resp);
//    //            if (resp.getRtnCode().equals(RetCode.FAILED)) break;
//    //        } catch (Exception e) {
//    //            //e.printStackTrace();
//    //            String errMsg =
//    //                    "TaskStepAdjustmentOfAccount -> execute 涉及以下资金交易流水：" + tradeCapitalCheckError.getCapitalCode() + "报错信息:" + e.getMessage();
//    //            log.error(errMsg);
//    //            resp.setRtnDesc(errMsg);
//    //            resp.setRtnCode(RetCode.FAILED);
//    //            break;
//    //        }
//    //    }
//    //
//    //    return resp;
//    //}
//    //
//    ///**
//    // * 调账对账操作
//    // *
//    // * @param tradeCapitalCheckError 资金交易对账差错表
//    // * @Description 调账处理逻辑：
//    // * [作废]1、冲正操作：<br>
//    // * [作废]a.查询<br>
//    // * [作废]b.冲正(最大冲正次数限制) -> 明确成功 -> 更新资金流水<br>
//    // * [作废]-> 冲正超时 -> 查询(最大查询次数限制) -> 查询确认冲正成功 -> 更新资金流水<br>
//    // * [作废]2、补记账操作:<br>
//    // * [作废]a.查询<br>
//    // * [作废]b.补记账 -> 明确成功 -> 更新资金流水<br>
//    // * [作废]-> 记账超时 -> 查询(最大查询次数限制) -> 查询确认补记账成功 -> 更新资金流水<br>
//    // * wuwei@20230424  更新 流程<br>
//    // * 1、冲正操作：<br>
//    // * a.核心 ->   1) 查询 2) 冲正(最大冲正次数限制) -> 明确成功 -> 更新资金流水<br>
//    // * b.统一支付 -> 1) 查询 查询原订单 是否 记账成功<br>
//    // * a) 原订单记账成功  查询 冲正交易流水(original_trans_serno) 记账状态<br>
//    // * b) 原订单记账失败<br>
//    // * 2) 冲正(最大冲正次数限制) -> 使用 冲正交易流水(original_trans_serno)+资金流水(capital_serno) 发起 退款<br>
//    // * 2、补记账操作:<br>
//    // * a.核心 -> 1) 查询  2) 补记账 -> 明确成功 -> 更新资金流水<br>
//    // * -> 记账超时 -> 查询(最大查询次数限制) -> 查询确认补记账成功 -> 更新资金流水<br>
//    // * b.统一支付 -> 1) 查询 2) 退款 -> 明确成功 -> 更新资金流水<br>
//    // * -> 退款(最大退款次数限制) -> 明确成功 -> 更新资金流水<br>
//    // */
//    //
//    //private BatchExecResp tradeCapitalReconciliate(MwbpTradeCapitalCheckError tradeCapitalCheckError, BatchExecResp resp) {
//    //
//    //    boolean result = false;
//    //    String errMsgUpdateTradeCapitalTransLog = "根据中间业务调账信息表[mwbp_trade_capital_check_error]更新中间业务资金交易流水表[mwbp_trade_capital_trans_log" +
//    //            "]异常！中间业务交易流水号: ";
//    //    String errMsgUpdateCheckError = "更新中间业务调账信息表[mwbp_trade_capital_check_error]异常！中间业务交易流水号: ";
//    //    String errOptType = tradeCapitalCheckError.getErrOptType();
//    //    String channelType = tradeCapitalCheckError.getChannelType();
//    //    Map<String, String> responseRetCdAndMsg;
//    //    int query_i = 0;
//    //    int correct_i = 0;
//    //
//    //    // 线程等待时间
//    //    long THREAD_WAITTING_TIME = 5000;
//    //    // 最大查询次数
//    //    int MAX_QUERY_COUNT = 3;
//    //    // 最大冲正次数
//    //    int MAX_CORRECT_COUNT = 3;
//    //    String acctResult;
//    //
//    //    if (errOptType.equals(EnumUtil.资金交易对账差错表_差错处理类型_冲正) && channelType.equals(EnumUtil.资金交易对账差错表_账务系统类型_核心)) {
//    //
//    //        // acctResult 取值 S成功, R冲正 E异常 N不存在
//    //        responseRetCdAndMsg = tradeCapitalBuilder.getTradeCapitalOpt(tradeCapitalCheckError, "query");
//    //        acctResult = responseRetCdAndMsg.getOrDefault("acctResult", "E");
//    //        // 查询成功 且 R 冲正
//    //        if ("R".equals(acctResult)) {
//    //            // 更新资金流水状态 结束当前调账操作
//    //            if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                    EnumUtil.资金交易流水表_资金流水状态_冲正成功) == 0) {
//    //                resp.setRtnCode(RetCode.FAILED);
//    //                resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                        new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                return resp;
//    //            }
//    //            tradeCapitalCheckError.setDealStatus(EnumUtil.资金交易对账差错表_差错状态_无需处理);
//    //            if (tradeCapitalCheckErrorService.updateById(tradeCapitalCheckError)) {
//    //                resp.setRtnCode(RetCode.FAILED);
//    //                resp.setRtnDesc(errMsgUpdateCheckError + printObjectInfo(tradeCapitalCheckError, new ArrayList<>(Collections.singletonList(
//    //                        "transSeqNo"))));
//    //                return resp;
//    //            }
//    //            result = true;
//    //        }
//    //
//    //        if ("N".equals(acctResult)) {
//    //            // 更新资金流水状态 结束当前调账操作
//    //            if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                    EnumUtil.资金交易流水表_资金流水状态_记账失败) == 0) {
//    //                resp.setRtnCode(RetCode.FAILED);
//    //                resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                        new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                return resp;
//    //            }
//    //            tradeCapitalCheckError.setDealStatus(EnumUtil.资金交易对账差错表_差错状态_无需处理);
//    //            if (tradeCapitalCheckErrorService.updateById(tradeCapitalCheckError)) {
//    //                resp.setRtnCode(RetCode.FAILED);
//    //                resp.setRtnDesc(errMsgUpdateCheckError + printObjectInfo(tradeCapitalCheckError, new ArrayList<>(Collections.singletonList(
//    //                        "transSeqNo"))));
//    //                return resp;
//    //            }
//    //            result = true;
//    //        }
//    //
//    //        if ("S".equals(acctResult)) {
//    //            // 核心 冲正操作
//    //            while (correct_i < MAX_CORRECT_COUNT) {
//    //                // 发起冲正操作
//    //                responseRetCdAndMsg = tradeCapitalBuilder.getTradeCapitalOpt(tradeCapitalCheckError, "opt");
//    //
//    //                // 冲正成功 明确反馈 冲正成功 无需对账 直接更新资金流水状态
//    //                if (RetCode.SUCCESS.equals(responseRetCdAndMsg.get("retCd"))) {
//    //                    // 更新 资金流水对账状态
//    //                    if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                            EnumUtil.资金交易流水表_资金流水状态_冲正成功) == 0) {
//    //                        resp.setRtnCode(RetCode.FAILED);
//    //                        resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                                new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                        return resp;
//    //                    }
//    //                    result = true;
//    //                    break;
//    //                }
//    //                // 冲正超时 查询获取记账结果
//    //                if (RetCode.ERR_TIME_OUT.equals(responseRetCdAndMsg.get("retCd"))) {
//    //                    while (query_i < MAX_QUERY_COUNT) {
//    //                        responseRetCdAndMsg = tradeCapitalBuilder.getTradeCapitalOpt(tradeCapitalCheckError, "query");
//    //                        // 查询成功 且 已冲正
//    //                        if (RetCode.SUCCESS.equals(responseRetCdAndMsg.get("retCd")) && "R".equals(responseRetCdAndMsg.get("acctResult"))) {
//    //                            // 更新资金流水状态 结束当前调账操作
//    //                            if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                                    EnumUtil.资金交易流水表_资金流水状态_冲正成功) == 0) {
//    //                                resp.setRtnCode(RetCode.FAILED);
//    //                                resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                                        new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                                return resp;
//    //                            }
//    //                            result = true;
//    //                            break;
//    //                        } else {
//    //                            // 查询超时 或 查询失败 当前线程等待 5秒
//    //                            try {
//    //                                Thread.sleep(THREAD_WAITTING_TIME);
//    //                            } catch (InterruptedException e) {
//    //                                //e.printStackTrace();
//    //                                log.info(e.getMessage());
//    //                            }
//    //                        }
//    //
//    //                        query_i++;
//    //
//    //                    }
//    //
//    //                }
//    //
//    //                correct_i++;
//    //            }
//    //        }
//    //    }
//    //
//    //    /*
//    //      统一支付 隔日冲正 调用退款接口
//    //      1、查询接口 -> acctResult:N -> 更新资金流水 对账相符 记账失败 -> 更新差错流水 无需处理 [统一最后更新]
//    //                    acctResult:R -> 更新资金流水 对账相符 记账失败 -> 更新差错流水 无需处理 [统一最后更新]
//    //                    acctResult:S -> (如果未生成退款交易流水号)生成退款交易流水号 更新到资金流水(original_trans_serno) -> 发起退款 -> 查询 -> 根据查询结果 更新差错流水
//    //                    acctResult:E -> 更新差错流水 处理状态 线上处理失败
//    //     */
//    //    if (errOptType.equals(EnumUtil.资金交易对账差错表_差错处理类型_冲正) && channelType.equals(EnumUtil.资金交易对账差错表_账务系统类型_统一支付)) {
//    //        // acctResult 取值 S成功, R冲正 E异常 N不存在
//    //        responseRetCdAndMsg = tradeCapitalBuilder.getTradeCapitalOpt(tradeCapitalCheckError, "query");
//    //        acctResult = responseRetCdAndMsg.getOrDefault("acctResult", "E");
//    //        // 查询成功 且 R 冲正
//    //        if ("R".equals(acctResult)) {
//    //            // 更新资金流水状态 结束当前调账操作
//    //            if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                    EnumUtil.资金交易流水表_资金流水状态_冲正成功) == 0) {
//    //                resp.setRtnCode(RetCode.FAILED);
//    //                resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                        new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                return resp;
//    //            }
//    //            tradeCapitalCheckError.setDealStatus(EnumUtil.资金交易对账差错表_差错状态_无需处理);
//    //            if (tradeCapitalCheckErrorService.updateById(tradeCapitalCheckError)) {
//    //                resp.setRtnCode(RetCode.FAILED);
//    //                resp.setRtnDesc(errMsgUpdateCheckError + printObjectInfo(tradeCapitalCheckError, new ArrayList<>(Collections.singletonList(
//    //                        "transSeqNo"))));
//    //                return resp;
//    //            }
//    //            result = true;
//    //
//    //        }
//    //
//    //        if ("N".equals(acctResult)) {
//    //            // 更新资金流水状态 结束当前调账操作
//    //            if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                    EnumUtil.资金交易流水表_资金流水状态_记账失败) == 0) {
//    //                resp.setRtnCode(RetCode.FAILED);
//    //                resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                        new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                return resp;
//    //            }
//    //            tradeCapitalCheckError.setDealStatus(EnumUtil.资金交易对账差错表_差错状态_无需处理);
//    //            if (tradeCapitalCheckErrorService.updateById(tradeCapitalCheckError)) {
//    //                resp.setRtnCode(RetCode.FAILED);
//    //                resp.setRtnDesc(errMsgUpdateCheckError + printObjectInfo(tradeCapitalCheckError, new ArrayList<>(Collections.singletonList(
//    //                        "transSeqNo"))));
//    //                return resp;
//    //            }
//    //            result = true;
//    //
//    //        }
//    //
//    //        if ("S".equals(acctResult)) {
//    //            // 统一支付 冲正操作
//    //            while (correct_i < MAX_CORRECT_COUNT) {
//    //                // 发起冲正操作
//    //                responseRetCdAndMsg = tradeCapitalBuilder.getTradeCapitalOpt(tradeCapitalCheckError, "opt");
//    //
//    //                // 冲正成功 明确反馈 冲正成功 无需对账 直接更新资金流水状态
//    //                if (RetCode.SUCCESS.equals(responseRetCdAndMsg.get("retCd"))) {
//    //                    // 更新 资金流水对账状态
//    //                    if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                            EnumUtil.资金交易流水表_资金流水状态_冲正成功) == 0) {
//    //                        resp.setRtnCode(RetCode.FAILED);
//    //                        resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                                new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                        return resp;
//    //                    }
//    //                    tradeCapitalCheckError.setDealStatus(EnumUtil.资金交易对账差错表_差错状态_后台自动处理);
//    //                    if (tradeCapitalCheckErrorService.updateById(tradeCapitalCheckError)) {
//    //                        resp.setRtnCode(RetCode.FAILED);
//    //                        resp.setRtnDesc(errMsgUpdateCheckError + printObjectInfo(tradeCapitalCheckError,
//    //                                new ArrayList<>(Collections.singletonList(
//    //                                        "transSeqNo"))));
//    //                        return resp;
//    //                    }
//    //                    result = true;
//    //                    break;
//    //                }
//    //                // 冲正超时 查询获取记账结果
//    //                if (RetCode.ERR_TIME_OUT.equals(responseRetCdAndMsg.get("retCd"))) {
//    //                    while (query_i < MAX_QUERY_COUNT) {
//    //                        responseRetCdAndMsg = tradeCapitalBuilder.getTradeCapitalOpt(tradeCapitalCheckError, "query");
//    //                        // 查询成功 且 已冲正
//    //                        if (RetCode.SUCCESS.equals(responseRetCdAndMsg.get("retCd")) && "R".equals(responseRetCdAndMsg.get("acctResult"))) {
//    //                            // 更新资金流水状态 结束当前调账操作
//    //                            if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                                    EnumUtil.资金交易流水表_资金流水状态_冲正成功) == 0) {
//    //                                resp.setRtnCode(RetCode.FAILED);
//    //                                resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                                        new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                                return resp;
//    //                            }
//    //                            tradeCapitalCheckError.setDealStatus(EnumUtil.资金交易对账差错表_差错状态_后台自动处理);
//    //                            if (tradeCapitalCheckErrorService.updateById(tradeCapitalCheckError)) {
//    //                                resp.setRtnCode(RetCode.FAILED);
//    //                                resp.setRtnDesc(errMsgUpdateCheckError + printObjectInfo(tradeCapitalCheckError,
//    //                                        new ArrayList<>(Collections.singletonList(
//    //                                                "transSeqNo"))));
//    //                                return resp;
//    //                            }
//    //                            result = true;
//    //                            break;
//    //                        } else {
//    //                            // 查询超时 或 查询失败 当前线程等待 5秒
//    //                            try {
//    //                                Thread.sleep(THREAD_WAITTING_TIME);
//    //                            } catch (InterruptedException e) {
//    //                                //e.printStackTrace();
//    //                                log.info(e.getMessage());
//    //                            }
//    //                        }
//    //                        query_i++;
//    //                    }
//    //
//    //                }
//    //                correct_i++;
//    //            }
//    //        }
//    //    }
//    //
//    //
//    //    /*
//    //      补记账 执行流程
//    //      1、查询接口 -> acctResult:N -> 发起补记账操作(一次) -> 执行成功 ->  更新差错流水 处理状态 后台自动处理 ; 更新资金流水 记账成功
//    //                                                       -> 执行超时 ->  查询接口 -> 查询成功  更新差错流水 处理状态 后台自动处理 ; 更新资金流水 记账成功
//    //                                                                              -> 查询超时  更新差错流水 处理状态 未处理 [统一最后更新]
//    //                    acctResult:R -> 更新差错流水 处理状态 未处理 [统一最后更新]
//    //                    acctResult:S -> 更新资金流水 对账相符 记账失败 -> 更新差错流水 无需处理
//    //                    acctResult:E -> 更新差错流水 处理状态 未处理 [统一最后更新]
//    //     */
//    //    if (errOptType.equals(EnumUtil.资金交易对账差错表_差错处理类型_补记账)) {
//    //        // 操作前 优先查询   acctResult 取值 S成功, R冲正 E异常 N不存在
//    //        responseRetCdAndMsg = tradeCapitalBuilder.getTradeCapitalOpt(tradeCapitalCheckError, "query");
//    //        acctResult = responseRetCdAndMsg.getOrDefault("acctResult", "E");
//    //
//    //        // 查询成功 且 已成功 获得记录
//    //        if (RetCode.SUCCESS.equals(responseRetCdAndMsg.get("retCd")) && "S".equals(acctResult)) {
//    //            // 更新资金流水-> 对账状态 为 对账相符; 资金流水状态 为 记账成功
//    //            if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                    EnumUtil.资金交易流水表_资金流水状态_记账成功) == 0) {
//    //                resp.setRtnCode(RetCode.FAILED);
//    //                resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                        new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                return resp;
//    //            }
//    //            // 更新差错流水状态-> 差错状态 为 无需处理
//    //            tradeCapitalCheckError.setDealStatus(EnumUtil.资金交易对账差错表_差错状态_无需处理);
//    //            if (tradeCapitalCheckErrorService.updateById(tradeCapitalCheckError)) {
//    //                resp.setRtnCode(RetCode.FAILED);
//    //                resp.setRtnDesc(errMsgUpdateCheckError + printObjectInfo(tradeCapitalCheckError,
//    //                        new ArrayList<>(Collections.singletonList(
//    //                                "transSeqNo"))));
//    //                return resp;
//    //            }
//    //            result = true;
//    //        }
//    //
//    //        if ("N".equals(acctResult)) {
//    //            // 发起补记账
//    //            responseRetCdAndMsg = tradeCapitalBuilder.getTradeCapitalOpt(tradeCapitalCheckError, "opt");
//    //            // 补记账 明确反馈 补记账成功 无需对账 直接更新资金流水状态
//    //            if (RetCode.SUCCESS.equals(responseRetCdAndMsg.get("retCd"))) {
//    //                // 更新 资金流水对账状态
//    //                if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                        EnumUtil.资金交易流水表_资金流水状态_记账成功) == 0) {
//    //                    resp.setRtnCode(RetCode.FAILED);
//    //                    resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                            new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                    return resp;
//    //                }
//    //                // 更新差错流水状态-> 差错状态 为 后台自动处理
//    //                tradeCapitalCheckError.setDealStatus(EnumUtil.资金交易对账差错表_差错状态_后台自动处理);
//    //                if (tradeCapitalCheckErrorService.updateById(tradeCapitalCheckError)) {
//    //                    resp.setRtnCode(RetCode.FAILED);
//    //                    resp.setRtnDesc(errMsgUpdateCheckError + printObjectInfo(tradeCapitalCheckError,
//    //                            new ArrayList<>(Collections.singletonList(
//    //                                    "transSeqNo"))));
//    //                    return resp;
//    //                }
//    //                result = true;
//    //
//    //                //break;
//    //            }
//    //
//    //            // 补记账超时 查询获取记账结果
//    //            if (RetCode.ERR_TIME_OUT.equals(responseRetCdAndMsg.get("retCd"))) {
//    //                while (query_i < MAX_QUERY_COUNT) {
//    //                    responseRetCdAndMsg = tradeCapitalBuilder.getTradeCapitalOpt(tradeCapitalCheckError, "query");
//    //                    // 查询成功 且 成功
//    //                    if (RetCode.SUCCESS.equals(responseRetCdAndMsg.get("retCd")) && "S".equals(responseRetCdAndMsg.get("acctResult"))) {
//    //                        // 更新资金流水状态 结束当前调账操作
//    //                        if (updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(tradeCapitalCheckError,
//    //                                EnumUtil.资金交易流水表_资金流水状态_记账成功) == 0) {
//    //                            resp.setRtnCode(RetCode.FAILED);
//    //                            resp.setRtnDesc(errMsgUpdateTradeCapitalTransLog + printObjectInfo(tradeCapitalCheckError,
//    //                                    new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //                            return resp;
//    //                        }
//    //                        // 更新差错流水状态-> 差错状态 为 后台自动处理
//    //                        tradeCapitalCheckError.setDealStatus(EnumUtil.资金交易对账差错表_差错状态_后台自动处理);
//    //                        if (tradeCapitalCheckErrorService.updateById(tradeCapitalCheckError)) {
//    //                            resp.setRtnCode(RetCode.FAILED);
//    //                            resp.setRtnDesc(errMsgUpdateCheckError + printObjectInfo(tradeCapitalCheckError,
//    //                                    new ArrayList<>(Collections.singletonList(
//    //                                            "transSeqNo"))));
//    //                            return resp;
//    //                        }
//    //                        result = true;
//    //                        break;
//    //                    } else {
//    //                        // 查询超时 或 查询失败 当前线程等待 5秒
//    //                        try {
//    //                            Thread.sleep(THREAD_WAITTING_TIME);
//    //                        } catch (InterruptedException e) {
//    //                            //e.printStackTrace();
//    //                            log.info(e.getMessage());
//    //                        }
//    //                    }
//    //
//    //                    query_i++;
//    //
//    //                }
//    //
//    //            }
//    //        }
//    //
//    //    }
//    //
//    //    if (!result) {
//    //        tradeCapitalCheckError.setDealStatus(EnumUtil.资金交易对账差错表_差错状态_未处理);
//    //        if (tradeCapitalCheckErrorService.updateById(tradeCapitalCheckError)) {
//    //            resp.setRtnCode(RetCode.FAILED);
//    //            resp.setRtnDesc(errMsgUpdateCheckError + printObjectInfo(tradeCapitalCheckError,
//    //                    new ArrayList<>(Collections.singletonList(
//    //                            "transSeqNo"))));
//    //            return resp;
//    //        }
//    //    }
//    //
//    //    //return result;
//    //
//    //    return resp;
//    //}
//    //
//    ///**
//    // * 更新资金流水 capital_status-资金流水状态为7记账失败 chk_status-对账状态为4不需要对账
//    // */
//    //private int updateTradeCapitalTransLogFormCapitalDealStatusAndChkStatus(MwbpTradeCapitalCheckError tradeCapitalCheckError,
//    //                                                                        String capitalStatus) {
//    //    BatchTradeCapitalTransReq updateRequest = new BatchTradeCapitalTransReq();
//    //    updateRequest.setChkStatus(EnumUtil.资金交易流水表_对账状态_对账相符);
//    //    updateRequest.setCapitalStatus(capitalStatus);
//    //    updateRequest.setCapitalCode(tradeCapitalCheckError.getCapitalCode());
//    //    //String errMsg = "更新资金流水异常！capital_serno-资金流水号[" + tradeCapitalCheckError.getCapitalCode() + "]";
//    //    return tradeCapitalTransLogService.updateTradeCapitalTransCapitalDealStatusAndChkStatus(updateRequest);
//    //}
//    //
//    ///**
//    // * 验证 差错处理类型是否正确
//    // *
//    // * @param tradeCapitalCheckError 资金交易对账差错表
//    // * @return 验证 当前差错对象 处理类型是否与实际交易状态相符
//    // */
//    //private boolean checkErrOptType(MwbpTradeCapitalCheckError tradeCapitalCheckError) {
//    //    String errOptType = tradeCapitalCheckError.getErrOptType(); // 差错处理类型：0冲正 1补记账
//    //    String transType = tradeCapitalCheckError.getTransType();//交易类型：1支付（入库），2撤单（撤销入库）
//    //    String transState = tradeCapitalCheckError.getTransState();// 交易状态 i 初始化 S 成功 F 失败
//    //    //String isCannel = tradeCapitalCheckError.getIsCannel();// 是否为撤单操作 0为非撤单 1为撤单
//    //
//    //    if (errOptType.equals(EnumUtil.资金交易对账差错表_差错处理类型_冲正) && transState.equals(EnumUtil.交易流水表_交易状态_交易失败)) {
//    //        return true;
//    //    }
//    //
//    //    if (errOptType.equals(EnumUtil.资金交易对账差错表_差错处理类型_补记账)) {
//    //        return transType.equals(EnumUtil.资金交易流水表_交易类型_撤单)
//    //                && transState.equals(EnumUtil.交易流水表_交易状态_交易成功);
//    //    }
//    //    return false;
//    //
//    //}
//    //
//    //private String printObjectInfo(List<MwbpTradeCapitalCheckError> objList) {
//    //
//    //    StringBuilder result = new StringBuilder();
//    //    for (MwbpTradeCapitalCheckError obj : objList) {
//    //        result.append(printObjectInfo(obj, new ArrayList<>(Collections.singletonList("transSeqNo"))));
//    //    }
//    //    return result.toString();
//    //}
//    //
//    //private String printObjectInfo(MwbpTradeCapitalCheckError obj, List<String> fieldList) {
//    //    return ConvertToUtil.printObjectInfo(obj, fieldList);
//    //
//    //}
//    //
//    //
//    //private TradeCapitalCheckErrorReq initTradeCapitalCheckErrorReq() {
//    //    String transTime = taskBuilder.getCutTime(":", "");
//    //    String lastTransDate = taskBuilder.getTaskExecDateBefore(execDate, new SimpleDateFormat("yyyyMMdd")); //交易日
//    //    String currentTransDate = taskBuilder.getTaskExecDate(execDate, new SimpleDateFormat("yyyyMMdd"));
//    //
//    //    TradeCapitalCheckErrorReq tradeCapitalCheckErrorReq = new TradeCapitalCheckErrorReq(lastTransDate, currentTransDate, transTime);
//    //    tradeCapitalCheckErrorReq.setDealStatus("0");
//    //    return tradeCapitalCheckErrorReq;
//    //}
//    //
//    //@Override
//    //public void rollback(BatchTaskExecute BatchServiceBean) throws TaskStepExecException {
//    //
//    //}
//    //
//    //public void printRunningMsg(BatchTaskExecute batchServiceBean) {
//    //    // 输出 运行参数信息
//    //    CommonUtil.showRunningMsg(this.getClass().getSimpleName(), "execute", batchServiceBean.getTaskParams(), batchServiceBean.getTaskStepParams());
//    //    // 当前方法 在 未启用 taskParams 和 taskStepParams 调用
//    //    CommonUtil.invalidParamMsg(this.getClass().getSimpleName(), "execute", batchServiceBean.getTaskParams(),
//    //            batchServiceBean.getTaskStepParams());
//    //}
//}
